close all; clear; clc;
% 读取两幅图像
img1 = imread('rec1.bmp');    img1 = im2double(img1);
img2 = imread('rec2.bmp');    img2 = im2double(img2);

% 对第一幅图像进行FFT变换并增强频谱
img_fft1 = fft2(img1);
mag_spectrum1 = abs(img_fft1);
mag_spectrum1 = log(1 + mag_spectrum1); % 对数变换
mag_spectrum1_shifted = fftshift(mag_spectrum1);
enhanced_spectrum1 = mag_spectrum1_shifted * 1.02; % 简单增强
enhanced_spectrum1 = min(max(enhanced_spectrum1, 0), 1);

% 对第二幅图像进行FFT变换并增强频谱
img_fft2 = fft2(img2);
mag_spectrum2 = abs(img_fft2);
mag_spectrum2 = log(1 + mag_spectrum2); % 对数变换
mag_spectrum2_shifted = fftshift(mag_spectrum2);
enhanced_spectrum2 = mag_spectrum2_shifted * 1; % 简单增强
enhanced_spectrum2 = min(max(enhanced_spectrum2, 0), 1);

subplot(2, 2, 1);imshow(img1);title('Original Image 1');% 第一幅图像
subplot(2, 2, 2);imshow(enhanced_spectrum1, []);title('Enhanced Spectrum 1');
subplot(2, 2, 3);imshow(img2);title('Original Image 2');% 第二幅图像
subplot(2, 2, 4);imshow(enhanced_spectrum2, []);title('Enhanced Spectrum 2');



% 分析旋转不变性
% 注意：直接从频谱图像判断旋转不变性可能不够直观，因为傅立叶变换不直接编码旋转信息。
% 实际上，旋转图像会导致其频谱中的相位发生变化，而幅度谱可能看起来相似，特别是对于小角度旋转。

%%

A=imread('rec1.bmp');
B=imread('rec2.bmp');
FA=fft2(A);         %频谱图
FcA=fftshift(FA);   %中心平移频谱
a=log(1+abs(FcA));  %中心平移后增强频谱
FB=fft2(B);         %频谱图
FcB=fftshift(FB);   %中心平移频谱
b=log(1+abs(FcB));  %中心平移后增强频谱

subplot(2,2,1);imshow(A,[]);title('rec1原图像'); 
subplot(2,2,2);imshow(a,[]);title('rec1中心平移后增强频谱图像');   %[]增加对比度
subplot(2,2,3);imshow(B,[]);title('rec2原图像');
subplot(2,2,4);imshow(b,[]);title('rec2中心平移后增强频谱图像');






























